/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package freewolf;

/**
 *
 * @author puzzud
 */
public class BlockGraphic
{
    // TODO: These could be instantiated as an object.
    static final int NUMBER_OF_BLOCK_GRAPHICS_WIDE = 30;
    static final int NUMBER_OF_BLOCK_GRAPHICS_TALL = 9;
    //static final int NUMBER_OF_BLOCK_GRAPHICS = NUMBER_OF_BLOCK_GRAPHICS_WIDE * NUMBER_OF_BLOCK_GRAPHICS_TALL;
    static final int NUMBER_OF_BLOCK_GRAPHICS = 256;

    static final int WIDTH = 8;
    static final int HEIGHT = 8;

    // Character symbol graphics.
    static final int INDEX_ASPERAND               = 0;

    // Alpha character (lowercase) graphics.
    static final int INDEX_LOWERCASE_A            = 1;
    static final int INDEX_LOWERCASE_B            = 2;
    static final int INDEX_LOWERCASE_C            = 3;
    static final int INDEX_LOWERCASE_D            = 4;
    static final int INDEX_LOWERCASE_E            = 5;
    static final int INDEX_LOWERCASE_F            = 6;
    static final int INDEX_LOWERCASE_G            = 7;
    static final int INDEX_LOWERCASE_H            = 8;
    static final int INDEX_LOWERCASE_I            = 9;
    static final int INDEX_LOWERCASE_J            = 10;
    static final int INDEX_LOWERCASE_K            = 11;
    static final int INDEX_LOWERCASE_L            = 12;
    static final int INDEX_LOWERCASE_M            = 13;
    static final int INDEX_LOWERCASE_N            = 14;
    static final int INDEX_LOWERCASE_O            = 15;
    static final int INDEX_LOWERCASE_P            = 16;
    static final int INDEX_LOWERCASE_Q            = 17;
    static final int INDEX_LOWERCASE_R            = 18;
    static final int INDEX_LOWERCASE_S            = 19;
    static final int INDEX_LOWERCASE_T            = 20;
    static final int INDEX_LOWERCASE_U            = 21;
    static final int INDEX_LOWERCASE_V            = 22;
    static final int INDEX_LOWERCASE_W            = 23;
    static final int INDEX_LOWERCASE_X            = 24;
    static final int INDEX_LOWERCASE_Y            = 25;
    static final int INDEX_LOWERCASE_Z            = 26;

    // Character symbol graphics.
    static final int INDEX_OPEN_BRACKET           = 27;
    static final int INDEX_BRITISH_POUND          = 28;
    static final int INDEX_CLOSE_BRACKET          = 29;
    static final int INDEX_UP_ARROW               = 30;
    static final int INDEX_LEFT_ARROW             = 31;
    static final int INDEX_SPACE                  = 32;
    static final int INDEX_EMPTY                  = INDEX_SPACE;
    static final int INDEX_EXCLAMATION            = 33;
    static final int INDEX_QUOTE                  = 34;
    static final int INDEX_POUND                  = 35;
    static final int INDEX_DOLLAR                 = 36;
    static final int INDEX_PERCENT                = 37;
    static final int INDEX_AMPERSAND              = 38;
    static final int INDEX_APOSTROPHE             = 39;
    static final int INDEX_OPEN_PARANTHESES       = 40;
    static final int INDEX_CLOSE_PARANTHESES      = 41;
    static final int INDEX_ASTERIX                = 42;
    static final int INDEX_PLUS                   = 43;
    static final int INDEX_COMMA                  = 44;
    static final int INDEX_DASH                   = 45;
    static final int INDEX_HYPHEN                 = INDEX_DASH;
    static final int INDEX_PERIOD                 = 46;
    static final int INDEX_SLASH                  = 47;

    // Numeric character symbol graphics.
    static final int INDEX_0                      = 48;
    static final int INDEX_1                      = 49;
    static final int INDEX_2                      = 50;
    static final int INDEX_3                      = 51;
    static final int INDEX_4                      = 52;
    static final int INDEX_5                      = 53;
    static final int INDEX_6                      = 54;
    static final int INDEX_7                      = 55;
    static final int INDEX_8                      = 56;
    static final int INDEX_9                      = 57;

    // Character symbol graphics.
    static final int INDEX_COLON                  = 58;
    static final int INDEX_SEMICOLON              = 59;
    static final int INDEX_LESS_THAN              = 60;
    static final int INDEX_EQUAL                  = 61;
    static final int INDEX_GREATER_THAN           = 62;
    static final int INDEX_QUESTION               = 63;
    static final int INDEX_HORIZONTAL_BAR         = 64;

    // Alpha character (uppercase) graphics.
    static final int INDEX_UPPERCASE_A            = 65;
    static final int INDEX_UPPERCASE_B            = 66;
    static final int INDEX_UPPERCASE_C            = 67;
    static final int INDEX_UPPERCASE_D            = 68;
    static final int INDEX_UPPERCASE_E            = 69;
    static final int INDEX_UPPERCASE_F            = 70;
    static final int INDEX_UPPERCASE_G            = 71;
    static final int INDEX_UPPERCASE_H            = 72;
    static final int INDEX_UPPERCASE_I            = 73;
    static final int INDEX_UPPERCASE_J            = 74;
    static final int INDEX_UPPERCASE_K            = 75;
    static final int INDEX_UPPERCASE_L            = 76;
    static final int INDEX_UPPERCASE_M            = 77;
    static final int INDEX_UPPERCASE_N            = 78;
    static final int INDEX_UPPERCASE_O            = 79;
    static final int INDEX_UPPERCASE_P            = 80;
    static final int INDEX_UPPERCASE_Q            = 81;
    static final int INDEX_UPPERCASE_R            = 82;
    static final int INDEX_UPPERCASE_S            = 83;
    static final int INDEX_UPPERCASE_T            = 84;
    static final int INDEX_UPPERCASE_U            = 85;
    static final int INDEX_UPPERCASE_V            = 86;
    static final int INDEX_UPPERCASE_W            = 87;
    static final int INDEX_UPPERCASE_X            = 88;
    static final int INDEX_UPPERCASE_Y            = 89;
    static final int INDEX_UPPERCASE_Z            = 90;

    // Various pattern character symbol graphics.
    static final int INDEX_CROSS                  = 91;
    static final int INDEX_LEFT_HALF_CHECKER      = 92;
    static final int INDEX_VERTICAL_BAR           = 93;
    static final int INDEX_LEFT_BIG_CHECKER       = 94;
    static final int INDEX_DIAGONAL_PATTERN       = 95;
    static final int INDEX_LEFT_SMALL_CHECKER     = 96;

    // Some body graphics.
    static final int INDEX_DEAD_BODY_HEAD         = 97;
    static final int INDEX_DEAD_BODY_TORSO        = 98;
    static final int INDEX_DEAD_BODY_LEGS         = 99;

    // Beer graphic (partly).
    static final int INDEX_BEER_TOP               = INDEX_DEAD_BODY_LEGS;

    // Body (arms) graphics (partly).
    static final int INDEX_BODY_ARM_UP_LEFT       = 100;
    static final int INDEX_BODY_ARM_UP_RIGHT      = 101;

    // Completely filled block.
    static final int INDEX_FULL                   = 102;

    // Front chest graphic.
    static final int INDEX_CHEST_FRONT            = INDEX_FULL;

    // Open chest graphics.
    static final int INDEX_CHEST_OPEN_LEFT        = 103;
    static final int INDEX_CHEST_OPEN_MIDDLE      = 104;
    static final int INDEX_CHEST_OPEN_RIGHT       = 105;

    // Stair graphics.
    static final int INDEX_STAIRS_TOP             = 106;
    static final int INDEX_STAIRS_MAIN            = 107;

    // Gernade graphics.
    static final int INDEX_GERNADE                = 108;
    static final int INDEX_GERNADE_FLIPPED        = 109;

    static final int INDEX_X_CROSS                = 110;

    // Another chest graphic.
    static final int INDEX_CHEST_RIGHT_SIDE       = 111;

    // Closed door graphic.
    static final int INDEX_DOOR                   = 112;

    // Gun blast graphic.
    static final int INDEX_GUN_BLAST              = 113;

    // Moon graphic.
    static final int INDEX_MOON_LEFT              = 114;

    // Star graphic.
    static final int INDEX_STAR_PAIR              = 115;

    // Moon graphics.
    static final int INDEX_MOON_RIGHT             = 116;
    static final int INDEX_MOON_TOP               = 117;
    static final int INDEX_MOON_BOTTOM            = 118;

    // Undetermined or unused graphic.
    static final int INDEX_UNKNOWN_119            = 119;    // TODO: NOT SURE ABOUT THIS.

    // Star graphic.
    static final int INDEX_STAR_0                 = 120;    // TODO: NOT SURE ABOUT THIS.

    // Bat graphic (not sure if this is used or undetermined).
    static final int INDEX_BAT                    = 121;    // TODO: NOT SURE ABOUT THIS.

    // Star graphic.
    static final int INDEX_STAR_1                 = 122;    // TODO: NOT SURE ABOUT THIS.

    // Beer graphics.
    static final int INDEX_BEER_LEFT              = 123;
    static final int INDEX_BEER_RIGHT             = 124;

    // Closed chest graphics.
    static final int INDEX_CHEST_CLOSED_LEFT      = 125;
    static final int INDEX_CHEST_CLOSED_MIDDLE    = 126;
    static final int INDEX_CHEST_CLOSED_RIGHT     = 127;

    // Outside castle graphics.
    static final int INDEX_WALL_OUTSIDE           = 128;
    static final int INDEX_WALL_OUTSIDE_SLANT     = 129;

    // Grating graphics.
    static final int INDEX_GRATE                  = 130;

    // Water graphics.
    static final int INDEX_WATER_CLOSE            = 131;
    static final int INDEX_WATER_FAR              = 132;

    // Draw bridge graphics.
    static final int INDEX_BRIDGE_LEFT            = 133;
    static final int INDEX_BRIDGE_MIDDLE          = 134;
    static final int INDEX_BRIDGE_RIGHT           = 135;

    // Grass graphics (partly).
    static final int INDEX_GRASS_MIDDLE           = 136;

    // Tree graphics.
    static final int INDEX_TREE_BASE_LEFT         = 137;
    static final int INDEX_TREE_BASE_RIGHT        = 138;
    static final int INDEX_TREE_BRANCH_RIGHT      = 139;
    static final int INDEX_TREE_BRANCH_LEFT       = 140;
    static final int INDEX_TREE_BRANCH_MIDDLE     = 141;
    static final int INDEX_TREE_FILL              = INDEX_FULL;// TODO: NOT SURE ABOUT THIS.

    // Cloud graphics (used for tree leaves as well).
    static final int INDEX_CLOUD_BOTTOM_0         = 142;
    static final int INDEX_CLOUD_FILL_0           = 143;    // NOTE: Possibly same as tree fill.
    static final int INDEX_CLOUD_FILL_1           = INDEX_FULL;
    static final int INDEX_CLOUD_FILL             = INDEX_CLOUD_FILL_1;
    static final int INDEX_CLOUD_LEFT             = 144;
    static final int INDEX_CLOUD_RIGHT            = 145;
    static final int INDEX_CLOUD_BOTTOM           = 146;

    // Unknown or undetermined graphic (most likely multicolored).
    static final int INDEX_UNKNOWN_146            = 147;

    // Grass graphics (partly).
    static final int INDEX_GRASS_SHORE_LEFT_0     = 148;
    static final int INDEX_GRASS_SHORE_LEFT_1     = INDEX_TREE_BASE_LEFT;

    // Draw bridge chain graphic.
    static final int INDEX_CHAIN                  = 149;

    // Bridge graphic (partly).
    static final int INDEX_BRIDGE_CHAIN_HOOK      = 150;

    // Undetermined or unused graphic.
    static final int INDEX_UNKNOWN_149            = 149;

    static final int INDEX_BOX_OUTLINE_LEFT       = 152;
    static final int INDEX_BOX_OUTLINE_TOP        = 153;
    static final int INDEX_BOX_OUTLINE_UPPER_LEFT = 154;

    // Start of multicolor or undetermined graphics.
    static final int INDEX_MULTI_COLOR_START      = 154;

    // Potential reuse of graphic.
    static final int INDEX_UNKNOWN_175            = 175;                // NOTE: Most likely multicolor intro castle graphic.
    static final int INDEX_UNDERSCORE             = INDEX_UNKNOWN_175;  // This would make great use as an underscore.

    // Copyright and trademark symbols (stuck in the middle here).
    static final int INDEX_TRADEMARK              = 188;
    static final int INDEX_COPYRIGHT              = 189;

    // End of multicolor or undetermined graphics.
    static final int INDEX_MULTI_COLOR_END        = 201;

    // Section of unused graphics (probably in their mostly default form during original graphic design).
    static final int INDEX_UNUSED_START           = 202;
    static final int INDEX_UNUSED_END             = 218;

    // Various pattern character symbol graphics.
    static final int INDEX_INV_CROSS              = 219;
    static final int INDEX_INV_LEFT_HALF_CHECKER  = 220;
    static final int INDEX_INV_VERTICAL_BAR       = 221;
    static final int INDEX_INV_LEFT_BIG_CHECKER   = 222;
    static final int INDEX_INV_DIAGONAL_PATTERN   = 223;

    // Body (head) graphics.
    static final int INDEX_BODY_HEAD_ALLIE_FRONT  = 224;
    static final int INDEX_BODY_HEAD_ALLIE_LEFT   = 225;
    static final int INDEX_BODY_HEAD_ALLIE_RIGHT  = 226;
    static final int INDEX_BODY_HEAD_ALLIE_BACK   = 227;
    static final int INDEX_BODY_HEAD_NAZI_FRONT   = 228;
    static final int INDEX_BODY_HEAD_NAZI_LEFT    = 229;
    static final int INDEX_BODY_HEAD_NAZI_RIGHT   = 230;
    static final int INDEX_BODY_HEAD_NAZI_BACK    = 231;
    
    // Body (leg) graphics (partly).
    static final int INDEX_BODY_LEGS              = 232;
    static final int INDEX_BODY_LEGS_VERT_WALK_0  = 233;
    static final int INDEX_BODY_LEGS_VERT_WALK_1  = 234;
    static final int INDEX_BODY_LEGS_NAZI_RIGHT   = 235;

    // Body (torso) graphics.
    static final int INDEX_BODY_TORSO_PRISONER    = 236;
    static final int INDEX_BODY_TORSO_NAZI        = 237;
    static final int INDEX_BODY_TORSO_SS          = 238;

    // Body (leg) graphics (partly).
    static final int INDEX_BODY_LEGS_NAZI_LEFT    = 239;
    static final int INDEX_BODY_LEGS_RIGHT_WALK_1 = 240;
    static final int INDEX_BODY_LEGS_ALLIE_RIGHT  = 241;
    static final int INDEX_BODY_LEGS_ALLIE_LEFT   = 242;
    static final int INDEX_BODY_LEGS_LEFT_WALK_1  = 243;
    
    // Inside wall graphics.
    static final int INDEX_WALL_HORIZONTAL        = 244;
    static final int INDEX_WALL_VERTICAL          = 245;

    // Body (arms) graphics (partly).  Cardinal directions indicate pointing direction.
    static final int INDEX_BODY_ARM_LEFT          = 246;
    static final int INDEX_BODY_ARM_RIGHT         = 247;
    static final int INDEX_BODY_ARM_RIGHT_S       = 248;
    static final int INDEX_BODY_ARM_RIGHT_SE      = 249;
    static final int INDEX_BODY_ARM_RIGHT_E       = 250;
    static final int INDEX_BODY_ARM_RIGHT_NE      = 251;
    static final int INDEX_BODY_ARM_RIGHT_N       = 252;
    static final int INDEX_BODY_ARM_RIGHT_NW      = INDEX_BODY_ARM_RIGHT;
    static final int INDEX_BODY_ARM_RIGHT_W       = INDEX_BODY_ARM_RIGHT;
    static final int INDEX_BODY_ARM_RIGHT_SW      = INDEX_BODY_ARM_RIGHT;
    static final int INDEX_BODY_ARM_LEFT_S        = INDEX_BODY_ARM_LEFT;
    static final int INDEX_BODY_ARM_LEFT_SE       = INDEX_BODY_ARM_LEFT;
    static final int INDEX_BODY_ARM_LEFT_E        = INDEX_BODY_ARM_LEFT;
    static final int INDEX_BODY_ARM_LEFT_NE       = INDEX_BODY_ARM_LEFT;
    static final int INDEX_BODY_ARM_LEFT_N        = INDEX_BODY_ARM_LEFT;
    static final int INDEX_BODY_ARM_LEFT_NW       = 253;
    static final int INDEX_BODY_ARM_LEFT_W        = 254;
    static final int INDEX_BODY_ARM_LEFT_SW       = 255;
}
